ruleset = tree_rules->pdata[i];
- verify_change |= _gtk_css_selector_tree_match_get_change (ruleset->selector_match);
+ verify_change |= _gtk_css_selector_get_change (ruleset->selector);
}
if (change != verify_change)
return g_string_free (string, FALSE);
}
-
-GtkCssChange
-_gtk_css_selector_tree_match_get_change (const GtkCssSelectorTree *tree)
-{
- GtkCssChange change = 0;
-
- update_type_references ();
-
- while (tree)
- {
- change = tree->selector.class->get_change (&tree->selector, change);
- tree = gtk_css_selector_tree_get_parent (tree);
- }
-
- return change;
-}
-
static gboolean
gtk_css_selector_foreach_match (const GtkCssSelector *selector,
const GtkCssMatcher *matcher,
return a_elements - b_elements;
}
+GtkCssChange
+_gtk_css_selector_get_change (const GtkCssSelector *selector)
+{
+ if (selector == NULL)
+ return 0;
+
+ return selector->class->get_change (selector, _gtk_css_selector_get_change (gtk_css_selector_previous (selector)));
+}
/******************** SelectorTree handling *****************/
gboolean _gtk_css_selector_matches (const GtkCssSelector *selector,
const GtkCssMatcher *matcher);
+GtkCssChange _gtk_css_selector_get_change (const GtkCssSelector *selector);
int _gtk_css_selector_compare (const GtkCssSelector *a,
const GtkCssSelector *b);
const GtkCssMatcher *matcher);
void _gtk_css_selector_tree_match_print (const GtkCssSelectorTree *tree,
GString *str);
-GtkCssChange _gtk_css_selector_tree_match_get_change (const GtkCssSelectorTree *tree);
GtkCssSelectorTreeBuilder *_gtk_css_selector_tree_builder_new (void);